package com.tengju.bff.interfaces.covercharge.intf;

import com.idanchuang.component.base.JsonResult;
import com.tengju.bff.interfaces.covercharge.dto.*;
import com.tengju.bff.interfaces.shared.ApiResponse;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;


/**
 * 服务费提现相关接口-php调用
 *
 * @author zhaoyi
 */
public interface IWithdrawalProvider {

    /**
     * 功能描述: <br>
     * 升级为自认证，取消服务费提现申请
     *
     * @param withdrawalCancel 提现申请取消
     */
    @RequestMapping(value = "/cancelWithdrawalApply", method = RequestMethod.POST)
    ApiResponse<Integer> cancelWithdrawalApply(@RequestBody WithdrawalCancel withdrawalCancel);

    /**
     * 功能描述: <br>
     * 个人升级乐税个体户，修改服务费提现申请
     *
     * @param withdrawalModify 提现申请修改
     */
    @RequestMapping(value = "/modifyWithdrawalApply", method = RequestMethod.POST)
    ApiResponse<?> modifyWithdrawalApply(@RequestBody WithdrawalModify withdrawalModify);

    /**
     * 功能描述: <br>
     * 个体户提现记录
     *
     * @param withdrawalRecord 个体户提现记录
     */
    @RequestMapping(value = "/registeredSohoWithdrawalRecord", method = RequestMethod.POST)
    ApiResponse<?> registeredSohoWithdrawalRecord(@RequestBody WithdrawalRecord withdrawalRecord);

    /**
     * 功能描述: <br>
     * 自认证
     *
     * @param certificationWithdrawalRecord 自认证记录
     */
    @RequestMapping(value = "/certificationWithdrawalRecord", method = RequestMethod.POST)
    ApiResponse<?> certificationWithdrawalRecord(@RequestBody CertificationWithdrawalRecord certificationWithdrawalRecord);

    /**
     * 功能描述: <br>
     * 提现拒绝
     *
     * @param refusedToWithdraw 提现拒绝参数
     */
    @RequestMapping(value = "/refusedToWithdrawApply", method = RequestMethod.POST)
    ApiResponse<?> refusedToWithdrawApply(@RequestBody RefusedToWithdraw refusedToWithdraw);


    /**
     * 是否存在乐税个体户提现明细
     * <p>
     * 状态 status!= 2:已发放,3:审核拒绝,6:已取消
     *
     * @param idCode 用户
     * @return 结果
     */
    @RequestMapping(value = "/queryIsExistLeTaxWithdraw", method = RequestMethod.POST)
    ApiResponse<Boolean> queryIsExistLeTaxWithdraw(@RequestParam("idCode") Long idCode);

    /**
     * 是否存在自认证用户提现
     * <p>
     * 状态 status!=3发放成功,5已取消
     *
     * @param idCode 用户
     * @return 结果
     */
    @RequestMapping(value = "/queryIsExistSelfCerWithdraw", method = RequestMethod.POST)
    ApiResponse<Boolean> queryIsExistSelfCerWithdraw(@RequestParam("idCode") Long idCode);


}
